Two-Phase Commit
2相コミット(Two-Phase Commit)とは、コンピュータネットワークやデータベースにおいて、分散システム内の全ノードがtransactionのコミットに合意するための分散アルゴリズムあるいはプロトコルである。ネットワーク障害やノード故障の場合も考慮され、結果としてトランザクションはコミットされるか失敗するかのいずれかの状態となる。 しかし、Dale Skeen とマイケル・ストーンブレーカーの研究によれば、2相コミットは同時に複数のサイトが(無作為に)障害に陥った場合に対応できない。
このアルゴリズムの2相とは、
「調整者; coordinator」が全「参加者; cohorts」の調整を行う「コミット要求相; commit-request phase」と、
調整者の決定によって全参加者がトランザクションを完了させる「コミット相; commit phase」である。